package com.yuw.cllectiondemo;

import java.util.*;

public class TestDriver {
    public static void main(String[] args) {
        System.out.println("==========================");
        System.out.println("HashSet集合：");
        test01();
        System.out.println("=============011=============");
        System.out.println("LinkedHashSet集合：");
        test011();
        System.out.println("==========================");
        System.out.println("TreeSet集合：");
        test012();
        System.out.println("==========================");
        System.out.println("ArrayList集合：");
        test02();
        System.out.println("==========================");
        System.out.println("LinkedList集合：");
        test021();

    }
    /**
     * List接口——LinkedList
     */
    public static void test021() {
        // 创建一个List集合对象
        // 软件工程编程规范：面对接口的编程；
        List list = new LinkedList();
        // 添加元素
        list.add("zhangsan");
        list.add("lisi");
        list.add("wangwu");
        list.add("zhaoliu");
        list.add("zhaoliu");
        list.add(null);
        list.add(null);

        // 遍历元素
        System.out.println("使用Iterator接口进行遍历List集合的元素：");
        // 获取集合的迭代器对象
        Iterator iterator = list.iterator();
        // 使用while循环一次遍历元素值
        while (iterator.hasNext()) {
            // 取出当前遍历的元素
            String str = (String) iterator.next();
            System.out.println(str);
        }
        System.out.println("使用foreach增强型的for循环进行遍历List集合的元素：");
        for (Object obj : list) {
            System.out.println(obj);
        }

        System.out.println("使用标准for循环进行遍历List集合的元素：");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

    /**
     * List接口——ArrayList
     */
    public static void test02() {
        // 创建一个List集合对象
        // 软件工程编程规范：面对接口的编程；
        List list = new ArrayList();
        // 添加元素
        list.add("zhangsan");
        list.add("lisi");
        list.add("wangwu");
        list.add("zhaoliu");
        list.add("zhaoliu");
        list.add(null);
        list.add(null);

        // 遍历元素
        System.out.println("使用Iterator接口进行遍历List集合的元素：");
        // 获取集合的迭代器对象
        Iterator iterator = list.iterator();
        // 使用while循环一次遍历元素值
        while (iterator.hasNext()) {
            // 取出当前遍历的元素
            String str = (String) iterator.next();
            System.out.println(str);
        }
        System.out.println("使用foreach增强型的for循环进行遍历List集合的元素：");
        for (Object obj : list) {
            System.out.println(obj);
        }

        System.out.println("使用标准for循环进行遍历List集合的元素：");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }


    /**
     * set接口——linkedhashset
     */
    public static void test012() {
        // 创建一个HashSet集合对象
        // 软件工程编程规范：面对接口的编程；
        Set set = new TreeSet();
        // 添加元素
        set.add("zhangsan");
        set.add("lisi");
        set.add("wangwu");
        set.add("zhaoliu");
        set.add("zhaoliu");
        //set.add(null);

        // 遍历元素
        System.out.println("使用Iterator接口进行遍历Set集合的元素：");
        // 获取集合的迭代器对象
        Iterator iterator = set.iterator();
        // 使用while循环一次遍历元素值
        while (iterator.hasNext()) {
            // 取出当前遍历的元素
            String str = (String) iterator.next();
            System.out.println(str);
        }
        System.out.println("使用foreach增强型的for循环进行遍历Set集合的元素：");
        for (Object obj : set) {
            System.out.println(obj);
        }
    }

    /**
     * set接口——linkedhashset
     */
    public static void test011() {
        // 创建一个HashSet集合对象
        // 软件工程编程规范：面对接口的编程；
        Set set = new LinkedHashSet();
        // 添加元素
        set.add("zhangsan");
        set.add("lisi");
        set.add("wangwu");
        set.add("zhaoliu");
        set.add("zhaoliu");
        set.add(null);
        set.add(null);

        // 遍历元素
        System.out.println("使用Iterator接口进行遍历Set集合的元素：");
        // 获取集合的迭代器对象
        Iterator iterator = set.iterator();
        // 使用while循环一次遍历元素值
        while (iterator.hasNext()) {
            // 取出当前遍历的元素
            String str = (String) iterator.next();
            System.out.println(str);
        }
        System.out.println("使用foreach增强型的for循环进行遍历Set集合的元素：");
        for (Object obj : set) {
            System.out.println(obj);
        }
    }

    /**
     * set接口——hashset
     */
    public static void test01() {
        // 创建一个HashSet集合对象
        // 软件工程编程规范：面对接口的编程；
        Set set = new HashSet();
        // 添加元素
        set.add("zhangsan");
        set.add("lisi");
        set.add("wangwu");
        set.add("zhaoliu");
        set.add("zhaoliu");
        set.add(null);

        // 遍历元素
        System.out.println("使用Iterator接口进行遍历Set集合的元素：");
        // 获取集合的迭代器对象
        Iterator iterator = set.iterator();
        // 使用while循环一次遍历元素值
        while (iterator.hasNext()) {
            // 取出当前遍历的元素
            String str = (String) iterator.next();
            System.out.println(str);
        }
        System.out.println("使用foreach增强型的for循环进行遍历Set集合的元素：");
        for (Object obj : set) {
            System.out.println(obj);
        }
    }
}
